home *** CD-ROM | disk | FTP | other *** search
/ Enter 2003 September / EnterCD 9_2003.iso / Ekstra / PictureToTV 1.4.4 / sample_files / swreg.js < prev   
Encoding:
Text File  |  2003-07-15  |  29.9 KB  |  1,095 lines

  1.  
  2. var rn = new Array()
  3. var rf = new Array()
  4. var serv = new Array()
  5.  
  6. // BEGIN VARS
  7.  
  8. var swheaders = "Product Code,,,Template,Name,Price,Short Description,Variation,Delivery Method,VAT,LBand,HBand,"
  9. rn[0]='cn'
  10. rf[0]='Card Number'
  11. rn[1]='mm'
  12. rf[1]='Expiry Month'
  13. rn[2]='yy'
  14. rf[2]='Expiry Year'
  15. rn[3]='pn'
  16. rf[3]='Phone Number'
  17. rn[4]='fn'
  18. rf[4]='First Name'
  19. rn[5]='sn'
  20. rf[5]='Surname'
  21. rn[6]='a1'
  22. rf[6]='Address 1'
  23. rn[7]='st'
  24. rf[7]='State / County'
  25. rn[8]='zp'
  26. rf[8]='Zip / Postcode'
  27. rn[9]='ct'
  28. rf[9]='Country'
  29. rn[10]='em'
  30. rf[10]='Email Address'
  31. var code_col = 0
  32. var price_col = 5
  33. var img_col = ','
  34. var thr_col = ','
  35. var var_col = 7
  36. var v_col = 2
  37. var vdesc_col = 8
  38. var vat_col = 9
  39. var cur_desc = '$'
  40. var remove_text = 'Remove'
  41. var basket_empty_text = 'Sorry - Your Basket is Empty'
  42. var gotobasket = 'on'
  43. var baskethitsrow = 1
  44. var dec = true
  45. var cfields= ",Shop ID,Product Code,Variation ID,Delivery ID,Quantity,Custom Field,Affiliate Code,Payment Type 1-5,Card Number,Issue Number,Expiry Month,Expiry Year,First Name,Surname,Company Name,Address 1,Address 2,Address 3,State / County,Zip / Postcode,Country,Email Address,Phone Number,Delivery First Name,Delivery Surname,Delivery Company,Delivery Address 1,Delivery Address 2,Delivery Address 3,Delivery State / County,Delivery Zip / Postcode,Delivery Country,Instructions,IP Address,Cart ID,EU VAT Number,"
  46. var baskettable = '</td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25>%27Product Code%27</td>%0D%0A  <td valign=top width=4><font face=arial size=-2><hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25>%27Name%27</td>%0D%0A  <td valign=top width=4><font face=arial size=-2><hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top align=right><font face=arial size=-2><hr noshade size=1 width=100%25>%27Price%27</td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25>%27Short Description%27</td>%0D%0A  <td valign=top width=4><font face=arial size=-2><hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25>%27Variation%27</td>%0D%0A  <td valign=top width=4><font face=arial size=-2><hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25>%27Delivery Method%27</td>%0D%0A  <td valign=top width=4><font face=arial size=-2><hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25>%27VAT%27</td>%0D%0A  <td valign=top width=4><font face=arial size=-2><hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25>%27Quantity%27 </td>%0D%0A  <td valign=top><font face=arial size=-2<hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top align=right><font face=arial size=-2><hr noshade size=1 width=100%25>%27Total%27 </td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25></td>%0D%0A  <td valign=top><font face=arial size=-2><hr noshade size=1 width=100%25>%27Remove%27 </td>%0D%0A'
  47. var baskettable2 = '</td>%0D%0A  <td valign=top bgcolor=%27#aaaaaa%27><font face=arial size=-2>Product Code</td>%0D%0A  <td valign=top width=4 bgcolor=%27#aaaaaa%27><font face=arial size=-2> </td>%0D%0A  <td valign=top bgcolor=%27#aaaaaa%27><font face=arial size=-2>Name</td>%0D%0A  <td valign=top width=4 bgcolor=%27#aaaaaa%27><font face=arial size=-2> </td>%0D%0A  <td valign=top align=right bgcolor=%27#aaaaaa%27 height=24><font face=arial size=-2>Price</td>%0D%0A  <td valign=top width=4 bgcolor=#aaaaaa><font face=arial size=-2> </td>%0D%0A  <td valign=top bgcolor=%27#aaaaaa%27><font face=arial size=-2>Short Description</td>%0D%0A  <td valign=top width=4 bgcolor=%27#aaaaaa%27><font face=arial size=-2> </td>%0D%0A  <td valign=top bgcolor=%27#aaaaaa%27><font face=arial size=-2>Variation</td>%0D%0A  <td valign=top width=4 bgcolor=%27#aaaaaa%27><font face=arial size=-2> </td>%0D%0A  <td valign=top bgcolor=%27#aaaaaa%27><font face=arial size=-2>Delivery Method</td>%0D%0A  <td valign=top width=4 bgcolor=%27#aaaaaa%27><font face=arial size=-2> </td>%0D%0A  <td valign=top bgcolor=%27#aaaaaa%27><font face=arial size=-2>VAT</td>%0D%0A  <td valign=top width=4 bgcolor=%27#aaaaaa%27><font face=arial size=-2> </td>%0D%0A  <td valign=top bgcolor=%27#aaaaaa%27><font face=arial size=-2>Quantity </td>%0D%0A  <td valign=top width=4 bgcolor=%27#aaaaaa%27><font face=arial size=-2> </td>%0D%0A  <td valign=top align=right bgcolor=%27#aaaaaa%27><font face=arial size=-2>Total </td>%0D%0A  <td valign=top width=4 bgcolor=%27#aaaaaa%27><font face=arial size=-2> </td>%0D%0A  <td bgcolor=%27#aaaaaa%27></td>%0D%0A'
  48. var store_cur = 'USD'
  49. var local_cur = 'USD'
  50. var sw_s = '4071'
  51.  
  52.  
  53. // END VARS
  54.  
  55. var cookies = true
  56. var send_once = false
  57. var ban_col = 11
  58. var cur_url = 'https://www.swreg.org/cgi-bin/john/sw_currency3.pl'
  59. var cur_var = 1
  60. var qr = ''
  61. var custom_col = 12
  62.  
  63. function set_country(ctr, or) {
  64.  
  65.     var reload = in_eu()
  66.     if (document.checkout) {
  67.     if (or && document.checkout.dct) {
  68.         document.checkout.dct.value = ctr
  69.         set_cookie('DCTR', ctr)
  70.     } else if (!or && document.checkout.ct) {
  71.         document.checkout.ct.value = ctr
  72.         set_cookie('CTR', ctr)    
  73.     }
  74.     }
  75.  
  76.     if (reload != in_eu()) {
  77.     save_form()
  78.     location= location.href.split('?')[0] + '?' + qr
  79.     }
  80. }
  81.  
  82. function in_eu() {
  83.  
  84.     var c = new Array()
  85.     var ret = false
  86.     var ctr = get_cookie('DCTR')
  87.     if (!ctr) {
  88.     ctr = get_cookie('CTR')
  89.     }
  90.  
  91.     c[0] = 'United Kingdom'
  92.     c[1] = 'Austria'
  93.     c[2] = 'Belgium'
  94.     c[3] = 'Denmark'
  95.     c[4] = 'Finland'
  96.     c[5] = 'France'
  97.     c[6] = 'Germany'
  98.     c[7] = 'Greece'
  99.     c[8] = 'Ireland'
  100.     c[9] = 'Italy'
  101.     c[10] = 'Luxembourg'
  102.     c[11] = 'Netherlands'
  103.     c[12] = 'Portugal'
  104.     c[13] = 'Spain'
  105.     c[14] = 'Sweden'
  106.  
  107.     if (ctr) {
  108.     for (var i=0; i < c.length; i++) {
  109.         if (ctr    == c[i]) {
  110.             ret = true
  111.             break
  112.         }
  113.     }
  114.     }
  115.     return ret
  116. }
  117.  
  118. function set_currency(sel, force) {
  119.  
  120.     local_cur = sel
  121.     if (force && !document.cookie) {
  122.     alert('Sorry - you have disabled this feature by turning off cookies!\n\nPlease turn them back on!')
  123.     } else if (force || location.href.indexOf('\\') > -1) {
  124.         var tem = location.href.split('?')
  125.         var new_location = ''
  126.  
  127.         if (tem.length > 1) {
  128.         new_location = '&' + tem[1]
  129.         }
  130.         set_cookie('CURSTORE', local_cur)
  131.     if (cur_desc == 'รบ') { 
  132.         var gb = '&gb=yes'
  133.     } else if (cur_desc == '€') {
  134.         var gb = '&eur=yes'
  135.     } else {
  136.         var gb = ''
  137.     }    
  138.         location = cur_url + '?SWCUR=' + local_cur + '&SWREF=' + escape(tem[0]) + new_location + gb
  139.     }
  140. }
  141.  
  142. function set_ip() {
  143.  
  144.     if (cookies) {
  145.     var tem = location.href.split('?')
  146.     var new_location = ''
  147.  
  148.     if (tem.length > 1) {
  149.         new_location = '&' + tem[1]
  150.     }
  151.     location = cur_url + '?&SWREF=' + escape(tem[0]) + new_location
  152.     }
  153. }
  154.  
  155. function pop_form() {
  156.  
  157.     if (document.checkout) {
  158.     var pull = false
  159.     var fm = get_cookie('FORM')
  160.         if (fm != '')  {
  161.         var tem = fm.split(':')
  162.             for (var i = 0; i < tem.length; i++) {
  163.             var tem2 = tem[i].split('=')
  164.             if (tem2.length > 1) {
  165.              if (tem2[1]) {
  166.                     for (var j=0; j < document.checkout.length; j++) {
  167.                     if (document.checkout.elements[j].name == tem2[0]) {
  168.                 if (tem2[0] == 'country' || tem2[0] == 'dcountry') {
  169.                      for (var k=0; k < document.checkout.elements[j].length; k++) {
  170.                         if (tem2[1] == document.checkout.elements[j].options[k].value) {
  171.                         document.checkout.elements[j].selectedIndex=k
  172.                     }
  173.                     }
  174.                 } else if (document.checkout.elements[j].value == '' || tem2[0] == 'ct' || tem2[0] == 'dct') {
  175.                             document.checkout.elements[j].value = tem2[1]
  176.                 }
  177.                     }
  178.                 }
  179.             }
  180.             }
  181.         }
  182.         }
  183.  
  184.     if (document.checkout.cn) {
  185.         var cno = get_cookie('CN')
  186.         if (cno) {
  187.             document.checkout.cn.value = cno
  188.         }
  189.     }
  190.         if (document.checkout.pt) {
  191.             var pt_index = get_cookie('PT')
  192.         if (!pt_index || pt_index != (1 * pt_index)) {
  193.         pt_index = 0
  194.         }
  195.         if (pt_index < document.checkout.pt.length) {
  196.         document.checkout.pt[pt_index].checked = true
  197.         }
  198.     }
  199.     }
  200. }
  201.  
  202. function save_form() {
  203.  
  204.     if (document.checkout) {
  205.  
  206.         var pull = false
  207.        var selbox = 0
  208.         var cs = ''
  209.  
  210.         for (var i=0; i < document.checkout.length; i++) {
  211.         pull = true
  212.         selbox = -1
  213.         if (document.checkout.elements[i].type) {
  214.          if (document.checkout.elements[i].type == 'hidden' || document.checkout.elements[i].name == 'pt') {
  215.             pull = false
  216.             }
  217.         }
  218.         if (pull) {
  219.             if (document.checkout.elements[i].name != 'cn') {
  220.                 var cn = document.checkout.elements[i].name
  221.                 if (document.checkout.elements[i].name == 'country' || document.checkout.elements[i].name == 'dcountry') {
  222.                 var cv = document.checkout.elements[i].options[document.checkout.elements[i].selectedIndex].value
  223.             } else {             
  224.                 var cv = document.checkout.elements[i].value
  225.             }
  226.             if (cv) {
  227.                     cs += cn + '='
  228.                     cs += cv + ':'
  229.             }
  230.         } else {
  231.             set_cookie('CN', document.checkout.elements[i].value)
  232.         }
  233.         }
  234.     }
  235.  
  236.     set_cookie('FORM', cs)
  237.  
  238.     if (document.checkout.pt) {
  239.         for (var i=0; i< document.checkout.pt.length; i++) {
  240.         if (document.checkout.pt[i].checked) {
  241.             set_cookie('PT', i)
  242.             break
  243.         }
  244.         }
  245.     }
  246.     }
  247. }
  248.  
  249. function set_cookie(cname, cvalue, exp) {
  250.  
  251.     cname = escape(cname)
  252.     if (cname) {
  253.     if (cookies) {
  254.             var when = new Date()
  255.         if (cvalue) {
  256.             if (exp) {
  257.                 when.setHours(when.getHours()+23)
  258.             } else {
  259.                 when.setMonth(when.getMonth()+6)
  260.             }
  261.             document.cookie = 'SW' + cname + '=' + escape(cvalue) + 'SW' + cname + 'END;expires=' + when.toGMTString()
  262.         } else {
  263.             when.setMonth(when.getMonth())
  264.             document.cookie = 'SW' + cname + '=;expires=' + when.toGMTString()
  265.         }
  266.     }
  267.     if (!cookies || get_cookie(unescape(cname)) != cvalue) {
  268.         var tem = qr.split('&')
  269.         qr = ''
  270.         for (var i=0; i < tem.length; i++) {
  271.             if (tem[i] && tem[i].split('=')[0] != cname) {
  272.                 qr += tem[i] + '&'
  273.             }
  274.             }
  275.         if (cvalue) {
  276.             qr += cname + '=' + escape(cvalue)
  277.         }
  278.         if (qr.length > 2043) {
  279.         alert('Sorry - you have limited the size of your basket by turning off cookies!\n\nPlease turn them back on!')
  280.         qr = tem.join('&')
  281.         } else {
  282.             load_links()
  283.         }
  284.     }
  285.     }
  286. }
  287.  
  288. function get_cookie(cname) {
  289.  
  290.     cname = 'SW' + escape(cname)
  291.     var cs_out = ''
  292.  
  293.     var cs = document.cookie
  294.  
  295.     if (cookies && cs.indexOf(cname + '=') > -1 && cs.indexOf(cname + 'END') > -1) {
  296.     cs_out = cs.split(cname + '=')[1].split(cname + 'END')[0]
  297.     }
  298.     if (!cs_out) {
  299.     cs_out = get_query(unescape(cname))
  300.     }
  301.  
  302.     return unescape(cs_out)
  303. }
  304.  
  305. function get_query(cname) {
  306.  
  307.     cname = escape(cname)
  308.     var tem = qr.split('&')
  309.     var cs_out = ''
  310.  
  311.     if (qr) {
  312.         for (var i=0; i < tem.length; i++) {
  313.         if (tem[i]) {
  314.             var tem2 = tem[i].split('=')
  315.             if (('SW' + tem2[0] == cname || tem2[0] == cname) && tem2.length > 1) {
  316.                 cs_out = tem2[1]
  317.                 break
  318.             }
  319.         }
  320.         }
  321.     }
  322.     return unescape(cs_out)
  323. }
  324.  
  325.     var sw_cur_old = get_cookie('CURSTORE')
  326.  
  327.     if (sw_cur_old) {
  328.     local_cur = sw_cur_old
  329.         if (document.currency) {
  330.             if (document.currency.c1) {
  331.         for (var i=0; i< document.currency.c1.length; i++) {
  332.             if (sw_cur_old == document.currency.c1.options[i].value) {
  333.             document.currency.c1.selectedIndex = i
  334.             break
  335.             }
  336.         }
  337.         }
  338.     }
  339.     }
  340.  
  341.     var sw_cur = document.location.href.split('?')
  342.     if (sw_cur.length > 1) {
  343.     if (sw_cur[1]) {
  344.         var sw_cur2 = sw_cur[1].split('&')
  345.         for (var i=0; i < sw_cur2.length; i++) {
  346.             var qr2 = sw_cur2[i].split('=')
  347.             if (qr2.length > 1) {
  348.                 qr2[0] = unescape(qr2[0])
  349.                 qr2[1] = unescape(qr2[1])
  350.                 if (qr2[0] == 'SWCUR') {
  351.                 cur_var = eval(escape(qr2[1]))
  352.             set_cookie('CURVAR', cur_var, true)
  353.             } else if (qr2[0] == 'SWIP') {
  354.             set_cookie('SWIP', qr2[1], true)
  355.             } else if (qr2[0] == 'a') {
  356.             set_cookie('AFFILIATE', qr2[1], true)
  357.             }
  358.         }
  359.         }
  360.     }
  361.     }
  362.  
  363.     var sw_ip = get_cookie('SWIP')
  364.     if (!sw_ip && location.href.toLowerCase().indexOf('checkout') > 0) {
  365.     set_ip()
  366.     }
  367.  
  368.     cur_var = eval(get_cookie('CURVAR'))
  369.  
  370.     if (cookies && !cur_var && document.cookie && local_cur != store_cur) {
  371.     set_currency(local_cur, false)
  372.     } else if (!cur_var) {
  373.     cur_var = 1
  374.     }
  375.     if (1 * cur_var != cur_var) {
  376.     cur_var = 1
  377.     }
  378.  
  379. function format_basket() {
  380.  
  381.     var count_width = 3
  382.     var count_items = 0
  383.     var htm = ''
  384.     
  385.     var htm4 = '<center><table border=0 cellspacing=0 cellpadding=0 width=100%>'
  386.  
  387.     if (!document.checkout) {
  388.     htm4 += '<form name="bask" onSubmit="return false">'
  389.     }
  390.     if (location.href.indexOf('Response.htm') > 0) {
  391.     remove_text = ''
  392.     }
  393.     var tem_price = 'n/a'
  394.     var htm_tem = ''
  395.     var cr1 = -1
  396.  
  397.     var headers = swheaders.split(',')
  398.     var htm3 = ''
  399.     var toprow = true
  400.  
  401.     var swhash = get_cookie('REGHASH').split('&')
  402.  
  403.     for (var i = 0; i < swhash.length; i++) {
  404.     if (swhash[i]) {
  405.            var tem = get_cookie(swhash[i]).split(',')
  406.  
  407.         if (tem.length > 1 ) {
  408.  
  409.         if (tem[0] == 'Shipping') {
  410.  
  411.  
  412.         } else {
  413.  
  414.             count_items++
  415.  
  416.                 if (baskettable2 != '' && toprow) {
  417.                 htm3 += '<td valign=top>' + unescape(baskettable2) + '</td>'
  418.                 }
  419.  
  420.             var htm2 = unescape(baskettable)
  421.  
  422.  
  423.             if (price_col > -1) {
  424.                 tem_price = tem[1] * tem[price_col]
  425.             if (in_eu()) {
  426.                 tem[vat_col] = 0.175 * eval(tem_price)
  427.             tem_price += eval(tem[vat_col])
  428.             }
  429.                 tem_price = CorrectPrices(tem_price, true)
  430.             }
  431.  
  432.                for (var j = 0; j < tem.length; j++){
  433.             htm_tem = ''
  434.             if (img_col.indexOf(',' + j + ',') > -1) {
  435.             if (tem[j+1] != '') {
  436.                 htm_tem += '<img src="' + tem[j] + '" border=0>'
  437.             }
  438.             } else if (j == price_col) {
  439.                 htm_tem += CorrectPrices(tem[j], true)
  440.             } else if (j == code_col && remove_text) {
  441.             htm_tem += "<a "
  442.             htm_tem += "href='javascript:location=(\"" + tem[tem.length - 1] + "?" + escape(qr) + "\");'>" + tem[j] + "</a>"
  443.             } else if (j == vat_col) {
  444.                   htm_tem += CorrectPrices((eval(tem[j]) * eval(tem[1])), true)
  445.             } else {
  446.                   htm_tem += tem[j]
  447.             }
  448.             if (htm_tem == '0') {
  449.             htm_tem = ''
  450.             }
  451.             htm2 = rep(htm2, headers[j], htm_tem)
  452.            }
  453.  
  454.         htm2 = rep(htm2, 'Remove', "<a href='javascript:remv(\"" + tem[0] + "\")'>" + remove_text + "</a>")
  455.         if (document.checkout || !remove_text) {
  456.             htm2 = rep(htm2, 'Quantity', '<b>' + tem[1] + '</b>')
  457.         } else {
  458.             htm2 = rep(htm2, 'Quantity', '<input type="text" size=5 value="' + tem[1] + '" onChange="chq()">')
  459.         }
  460.         htm2 = rep(htm2, 'Total', tem_price)
  461.  
  462.         if (cr1 <= 0) {
  463.         htm2 = '<tr><td valign=top>' + htm2 + '</td>'
  464.         cr1 = 0
  465.         } else {
  466.         htm2 = '<td valign=top>' + htm2 + '</td>'
  467.         }
  468.         cr1++
  469.         if (cr1 >= baskethitsrow) {
  470.         cr1 = 0
  471.         toprow = false
  472.         htm2 += '</tr>'
  473.         }
  474.  
  475.         htm += htm2
  476.         }
  477.     }
  478.     }
  479.     }
  480.  
  481.     count_width--
  482.     htm += '</table><br> <br><div align=left>'
  483.  
  484.     var vat_no = get_cookie('VAT_NO')
  485.  
  486.     if (vat_no != '') {
  487.     if (vat_no.indexOf('GB') < 0) {
  488.         htm += 'Sold by:<P>Atlantic Coast PLC<br>The Shareware Village<br>Colyton<br>Devon EX24 6HA<br>England<P>Our VAT Reg. # GB445812740<br>Your VAT #: ' + vat_no + '<P>To obtain a refund (credit card orders only) of the VAT shown above please fax this document along with proof of VAT registration to 0044 1297 553366 and allow a few days for the refund to be applied - a confirmation will be sent by e-mail. Suitable proof might but be but not limited to a copy of your VAT registration document or a copy of your VAT return form. For qualifying non credit-card orders please fax us proof as above and send the amount less the VAT.<P>'
  489.     }
  490.     }
  491.  
  492.     htm += '</div><div align=right>eCommerce engine by <a href="http://www.swreg.org" target="swreg">SWREG</a></div></center>'
  493.  
  494.     if (!document.checkout) {
  495.     htm += '</form>'
  496.     }
  497.     if (count_items < 1) {
  498.     htm = '<center><font face="arial"><h3>' + basket_empty_text + '</h3></font></center>'
  499.     } else {
  500.         if (htm3 != '') {
  501.         htm4 += '<tr>' + htm3 + '</tr>'
  502.         }
  503.         htm = htm4 + htm
  504.     }
  505.     if (remove_text == '') {
  506.      var tim = null
  507.     var tim = setTimeout('clear_basket()', 2000)
  508.     }
  509.     return htm;
  510. }
  511.  
  512. function check_card (st) {
  513.  
  514.     var sum = 0
  515.     var mul = 1
  516.     var l = st.length
  517.  
  518.     if (l > 19) {
  519.     return true
  520.     } else if (l < 5) {
  521.     return false
  522.     }
  523.     var dc = st.substring(0,2)
  524.     if (dc == '30' || dc == '36' || dc == '38') {
  525.     set_cookie('DC', 'yes')
  526.     } else {
  527.     set_cookie('DC', '')
  528.     }
  529.  
  530.     for (var i = 0; i < l; i++) {
  531.  
  532.     digit = st.substring(l-i-1,l-i)
  533.     tproduct = parseInt(digit ,10) * mul
  534.     if (tproduct >= 10) {
  535.         sum += (tproduct % 10) + 1
  536.     } else {
  537.         sum += tproduct
  538.     }
  539.     if (mul == 1) {
  540.         mul++
  541.     } else {
  542.         mul--
  543.     }
  544.     }
  545.  
  546.     if ((sum % 10) == 0) {
  547.     return (true)
  548.     } else {
  549.     return (false)
  550.     }
  551. }
  552.  
  553. function rep (one, two, three) {
  554.  
  555.     var where = one.split("'" + two + "'")
  556.     var out = '' 
  557.  
  558.     if (two) {
  559.         for (var i = 0; i < (where.length); i++) {
  560.         out += where[i]
  561.         if (i < (where.length -1)) {
  562.             out += three
  563.         }
  564.         }
  565.     } else {
  566.     out = one
  567.     }
  568.     return out;
  569. }
  570.  
  571. function CorrectPrices(thisvalue, flg){
  572.  
  573.     if(!thisvalue) {
  574.     thisvalue = 0
  575.     }
  576.  
  577.     var nvalue=thisvalue
  578.     if (1 * nvalue == nvalue) {
  579.     nvalue = eval(nvalue)
  580.  
  581.     var lvalue = nvalue * cur_var
  582.  
  583.     if (dec) {
  584.         nvalue = (Math.round(nvalue * 100)) / 100
  585.         lvalue = (Math.round(lvalue * 100)) / 100
  586.  
  587.         if (Math.floor(nvalue) == nvalue) {
  588.           nvalue = nvalue + '.00'
  589.         } else if (Math.floor(nvalue*10) == (nvalue*10)) {
  590.           nvalue = nvalue + '0'
  591.         }
  592.         if (Math.floor(lvalue) == lvalue) {
  593.           lvalue = lvalue + '.00'
  594.         } else if (Math.floor(lvalue*10) == (lvalue*10)) {
  595.           lvalue = lvalue + '0'
  596.         }
  597.     } else {
  598.     nvalue = Math.round(nvalue)
  599.     lvalue = Math.round(lvalue)
  600.     }
  601.  
  602.     if (cur_var != 1) {
  603.     nvalue = '<nobr>' + lvalue + ' ' + local_cur + ' </nobr>'
  604.     } else {
  605.     nvalue = cur_desc + nvalue
  606.     }
  607.     }
  608.     return nvalue
  609. }
  610.  
  611. function c_form() {
  612.  
  613.     var p = ''
  614.     var v = ''
  615.     var d = ''
  616.     var q = ''
  617.  
  618.     // KN Add, for storing serial#
  619.     var t = get_cookie('SERIAL')
  620.  
  621.     var a = get_cookie('AFFILIATE')
  622.     var ra = cur_url + '?SEND='
  623.     var ret = true
  624.  
  625.     var swhash = get_cookie('REGHASH').split('&')
  626.  
  627.     for (var i = 0; i < swhash.length; i++) {
  628.     if (swhash[i]) {
  629.            var tem = get_cookie(swhash[i]).split(',')
  630.         if (tem.length > 1 ) {
  631.         if (tem[0] != 'Shipping') {
  632.             if (tem[custom_col]) {
  633.             p += sw_s + 'Custom:'
  634.             } else {
  635.                 p += tem[code_col] + ':'
  636.             }
  637.             var tem2 = tem[v_col].split('&')
  638.             if (tem2.length > 1) {
  639.                 v += tem2[0] + ':'
  640.                 d += tem2[1] + ':'
  641.             } else {
  642.                 v += '0:'
  643.                 d += '0:'
  644.             }
  645.             q += tem[1] + ':'
  646.         }
  647.         }
  648.     }
  649.     }
  650.  
  651.     if (location.href.indexOf('/') < 0) {
  652.     var spl = '\\'
  653.     } else {
  654.     var spl = '/'
  655.     }
  656.  
  657.     var tem = unescape(location.href.split('?')[0])
  658.     tem = tem.split(spl)
  659.     for (var i=0; i< tem.length-1; i++) {
  660.         ra += tem[i] + spl
  661.     }
  662.     ra += 'Response.htm' 
  663.  
  664.     if (document.checkout.vn) {
  665.  
  666.     var eu = new Array()
  667.     eu[0] = 'GB,United Kingdom'
  668.     eu[1] = 'AT,Austria'
  669.     eu[2] = 'BE,Belgium'
  670.     eu[3] = 'DK,Denmark'
  671.     eu[4] = 'FI,Finland'
  672.     eu[5] = 'FR,France'
  673.     eu[6] = 'DE,Germany'
  674.     eu[7] = 'EL,Greece'
  675.     eu[8] = 'IE,Ireland'
  676.     eu[9] = 'IT,Italy'
  677.     eu[10] = 'LU,Luxembourg'
  678.     eu[11] = 'NL,Netherlands'
  679.     eu[12] = 'PT,Portugal'
  680.     eu[13] = 'ES,Spain'
  681.     eu[14] = 'SE,Sweden'
  682.  
  683.     var newvat = ''
  684.     var ctr = ''
  685.     if (document.checkout.dct) {
  686.         ctr = document.checkout.dct.value
  687.     }
  688.     if (!ctr && document.checkout.ct) {
  689.         ctr = document.checkout.ct.value
  690.     }
  691.  
  692.         for (var i=0; i < eu.length; i++) {
  693.         if (ctr == eu[i].split(',')[1]) { 
  694.         newvat = eu[i].split(',')[0]
  695.         break
  696.         }
  697.         }
  698.                     
  699.     var numbers = '0123456789'
  700.  
  701.     for (var i=0; i < document.checkout.vn.value.length; i++)  {
  702.  
  703.         for (var j = 0; j<= numbers.length; j++) {
  704.         if (document.checkout.vn.value.substring(i, i + 1) == numbers.substring(j, j + 1)){
  705.             newvat = newvat + document.checkout.vn.value.substring(i, i + 1)
  706.             break
  707.         }
  708.         }
  709.     }
  710.  
  711.     if (document.checkout.vn.value != '') {
  712.         document.checkout.vn.value = newvat
  713.         set_cookie('VAT_NO', newvat)
  714.     }
  715.     }
  716.  
  717.     if (p.length > 0 && document.checkout.p) {
  718.     document.checkout.p.value = p.substring(0,p.length-1)
  719.     }
  720.     if (v.length > 0 && document.checkout.v) {
  721.     document.checkout.v.value = v.substring(0,v.length-1)
  722.     }
  723.     if (d.length > 0 && document.checkout.d) {
  724.     document.checkout.d.value = d.substring(0,d.length-1)
  725.     }
  726.     if (q.length > 0 && document.checkout.q) {
  727.     document.checkout.q.value = q.substring(0,q.length-1)
  728.     }
  729.     // KN Add, for storing serial#
  730.     if (t.length > 0 && document.checkout.t) {
  731.     document.checkout.t.value = t
  732.     }
  733.     if (ra.length > 0 && document.checkout.ra) {
  734.     document.checkout.ra.value = ra
  735.     }
  736.     if (document.checkout.a) {
  737.     document.checkout.a.value = a
  738.     }
  739.     if (document.checkout.ip) {
  740.     if (!sw_ip) {
  741.         sw_ip = 'unknown'
  742.     }
  743.     document.checkout.ip.value = sw_ip
  744.     }
  745.     if (document.checkout.s) {
  746.     document.checkout.s.value = unescape(sw_s)
  747.     }
  748.     if (document.checkout.cart && (document.cookie == '' || !cookies)) {
  749.  
  750.     var ext = '&FORM=' + escape(get_cookie('FORM'))
  751.     var tem = get_cookie('REGHASH')
  752.     ext += '®HASH=' + escape(tem)
  753.         var swhash = tem.split('&')
  754.  
  755.     for (var i = 0; i < swhash.length; i++) {
  756.         if (swhash[i]) {
  757.                var tem2 = get_cookie(swhash[i])
  758.             if (tem2) {
  759.             ext += '&' + escape(swhash[i]) + '=' + escape(tem2)
  760.         }
  761.         }
  762.     }
  763.     document.checkout.cart.value = ext
  764.     }
  765.  
  766.     var pt_start = 3
  767.     if (document.checkout.pt) {
  768.         if (document.checkout.pt[0].checked) {
  769.         pt_start = 0
  770.     }
  771.     }
  772.  
  773.     for (var i=0; i < document.checkout.length; i++) {
  774.     for (var j=pt_start; j< rn.length; j++) {
  775.         if (ret && document.checkout.elements[i].name == rn[j] && (document.checkout.elements[i].value == '' || document.checkout.elements[i].value == ' ')) {
  776.             ret = false
  777.             alert('Please provide the information: ' + rf[j])
  778.             document.checkout.elements[i].focus()
  779.         }
  780.     }
  781.     }
  782.  
  783.     if (ret && document.checkout.pt && document.checkout.cn) {
  784.         if (document.checkout.pt[0].checked) {
  785.         if (send_once) {
  786.             alert('Sorry - to prevent a double-charge on your card this form will not be sent twice.\n\nTo try again please refresh this page in your browser.')
  787.             ret = false
  788.         } else if (!check_card(document.checkout.cn.value)) {
  789.         alert('Sorry - the credit card number you have used is invalid. Please check and try again!')
  790.         ret = false
  791.         } else if (get_cookie('DC') == 'yes') {
  792.         if (!confirm('You have used a Diners Club card - a surcharge of 4% will be added to your order.\n\nDo you want to continue with the order?')) {
  793.             ret = false
  794.         }
  795.         }
  796.     }
  797.     }
  798.  
  799.     if (document.checkout.em && ret) {
  800.         var em_prompt = prompt('Please confirm your email address is correct by re-entering it here','')
  801.         if (em_prompt != document.checkout.em.value) {
  802.             alert('Sorry - the email address does not match!\n\nPlease check it again...')
  803.         ret = false
  804.         document.checkout.em.focus()
  805.     }
  806.     }
  807.     send_once = ret
  808.     return ret
  809. }
  810.  
  811. function chq() {
  812.  
  813.     var cn = 0
  814.     var ntest = 0
  815.     var ct = 0
  816.     if (document.bask) {
  817.  
  818.  
  819.         var swhash = get_cookie('REGHASH').split('&')
  820.  
  821.         for (var i = 0; i < swhash.length; i++) {
  822.         if (swhash[i] && document.bask.elements[ct]) {
  823.             if (swhash[i] != 'Shipping' && swhash[i] != 'Tax') {
  824.             ntest = document.bask.elements[ct].value
  825.  
  826.                    var tem = get_cookie(swhash[i]).split(',')
  827.  
  828.             if (ntest != '' && ntest == (1 * ntest) && tem[1] != ntest) {
  829.                 var thr = tem[ban_col].split(':')
  830.                 if (thr.length > 1) {
  831.                 for (var j=0; j < thr.length; j++) {
  832.                         if (thr[j]) {
  833.                         var thr2 = thr[j].split('#')
  834.                     if (thr2.length > 1) {
  835.                             if (eval(ntest) >= thr2[1] && eval(ntest) <= thr2[2] && eval(thr2[0]) > 0) {
  836.                             tem[price_col] = eval(thr2[0])
  837.                             }
  838.                     }
  839.                         }
  840.                     }
  841.                 }
  842.  
  843.                        tem[1] = ntest
  844.                 set_cookie(tem[0], tem.join(','))
  845.             }
  846.             ct++
  847.         }
  848.           }
  849.         }
  850.     }
  851.  
  852.     set_data()
  853. }
  854.  
  855. function buy(val) {
  856.  
  857.     store_data(val + ',' + location.href.split('?')[0], true)
  858.     set_data()
  859. }
  860.  
  861. function load_document() {
  862.  
  863.     qr = location.search
  864.     if (qr.length > 0) {
  865.     qr = qr.substring(1,qr.length)
  866.     }
  867. }
  868.  
  869. // Modified by KN for anchor-jumping
  870. function load_links() {
  871.     for (var i=0; i< document.links.length; i++) {
  872.     if ((document.links[i].href.indexOf('javascript') < 0) &&
  873.         (document.links[i].href.indexOf('mailto') < 0) &&
  874.         (document.links[i].href.indexOf('ftp') < 0) &&
  875.         (document.links[i].href.indexOf('file/') < 0)){
  876.  
  877.             hash = document.links[i].hash;
  878.  
  879.         if (document.links[i].href.indexOf('?') < 0) {
  880.         document.links[i].href= document.links[i].href + '?' + qr + hash;
  881.         } else {
  882.             document.links[i].href= document.links[i].href.split('?')[0] + '?' + qr + hash;
  883.         }
  884.     }
  885.     }
  886. }
  887.  
  888. function load_checkout() {
  889.     load_links()
  890.     pop_form()
  891. }
  892.  
  893. function set_data() {
  894.     if (gotobasket == 'off' || location.href.split('?')[0].toLowerCase().indexOf('checkout') > 0) {
  895.     save_form()
  896.     location= location.href.split('?')[0] + '?' + qr
  897.     } else {
  898.         location='ShoppingBasket.htm?' + qr
  899.     }
  900. }
  901.  
  902.  
  903. function store_data(dvalue, addorremove) {
  904.  
  905.     var tem = dvalue.split(',')
  906.  
  907.     if (addorremove && tem.length >= ban_col) {
  908.         var thr = tem[ban_col].split(':')
  909.         if (thr.length > 1) {
  910.         for (var j=0; j < thr.length; j++) {
  911.             if (thr[j]) {
  912.             var thr2 = thr[j].split('#')
  913.             if (thr2.length > 1) {
  914.                 if (eval(tem[1]) >= thr2[1] && eval(tem[1]) <= thr2[2] && eval(thr2[0]) > 0) {
  915.                 tem[price_col] = eval(thr2[0])
  916.             }
  917.             }
  918.         }
  919.         }
  920.     }
  921.     }
  922.  
  923.     var swhash = get_cookie('REGHASH')
  924.     var dtem = ''
  925.  
  926.     for (var i=0; i < document.forms.length; i++) {
  927.     if (document.forms[i].name == '_' + tem[0]) {
  928.         if (document.forms[i].elements[0]) {
  929.             var tem3 = document.forms[i].elements[0].options[document.forms[i].elements[0].selectedIndex].value.split(':')
  930.             if (tem3.length > 2) {
  931.             tem[price_col] = eval(tem3[2])
  932.                 tem[v_col] = tem3[0] + '&' + tem3[1]
  933.                 tem[vdesc_col] =  document.forms[i].elements[0].options[document.forms[i].elements[0].selectedIndex].text
  934.             tem[vat_col] = 0
  935.         }
  936.         }
  937.     }
  938.     }
  939.  
  940.     var tem2 = swhash.split('&')
  941.     for (var i=0; i < tem2.length; i++) {
  942.     if (tem2[i] && unescape(tem2[i]) != tem[0]) {
  943.         dtem += tem2[i]
  944.         if (i < tem2.length -1) {
  945.         dtem += '&'
  946.         }
  947.     }
  948.     }
  949.  
  950.     if (addorremove) {
  951.     if (dtem) {
  952.         dtem += '&'
  953.     }
  954.         set_cookie('REGHASH', dtem + tem[0])
  955.         set_cookie(tem[0], tem.join(','))
  956.     } else {
  957.     set_cookie('REGHASH', dtem)
  958.     set_cookie(tem[0], '')
  959.     }
  960. }
  961.  
  962. function remv(val) {
  963.  
  964.     store_data(val, false)
  965.     set_data()
  966. }
  967.  
  968. function show_items() {
  969.  
  970.     var count_items = 0
  971.     var swhash = get_cookie('REGHASH').split('&')
  972.  
  973.     for (var i = 0; i < swhash.length; i++) {
  974.     if (swhash[i]) {
  975.            var tem = get_cookie(swhash[i]).split(',')
  976.         if (tem.length > 1 ) {
  977.             if (tem[0] != 'Shipping' && tem[0] != 'Tax' && tem[1] && tem[1] != '0' && tem[1] == (1 * tem[1])) {
  978.                 count_items += eval(tem[1])
  979.             }
  980.         }
  981.     }
  982.     }
  983.     return count_items
  984. }
  985.  
  986. function show_cost() {
  987.  
  988.     var count_items = 0
  989.     var ship = 0
  990.     var tax = 0
  991.     var diners = 0
  992.     var htm = '<div align=right>'
  993.  
  994.     var swhash = get_cookie('REGHASH').split('&')
  995.  
  996.     for (var i = 0; i < swhash.length; i++) {
  997.     if (swhash[i]) {
  998.            var tem = get_cookie(swhash[i]).split(',')
  999.         if (tem.length > 1 ) {
  1000.             if (tem[1] == (1 * tem[1]) && tem[price_col] == (1 * tem[price_col])) {
  1001.             if (tem[0] == 'Shipping') {
  1002.                 ship += eval(tem[price_col])
  1003.             } else {
  1004.             //tax += eval(tem[vat_col] * eval(tem[1]))
  1005.             count_items += eval(tem[1]) * eval(tem[price_col])
  1006.             }
  1007.             }
  1008.         }
  1009.     }
  1010.     }
  1011.  
  1012.     if (get_cookie('DC') == 'yes') {
  1013.     diners = eval(eval(eval(count_items) + eval(ship) + eval(tax) + eval(diners)) * 0.04)
  1014.         htm += '<br>Diners Club card surcharge: ' + CorrectPrices(diners, true)
  1015.     }
  1016.     htm = CorrectPrices(count_items, true)
  1017.     if (ship > 0 && eval(count_items) > 0) {
  1018.         htm += '<br>Manual processing fee: ' + CorrectPrices(ship, true)
  1019.     }
  1020.     if (in_eu()) {
  1021.     tax = 0.175 * eval(eval(count_items) + eval(ship) + eval(diners))
  1022.         htm += '<br>VAT @ 17.5%: ' + CorrectPrices(tax, true)
  1023.     }
  1024.     if ((ship > 0 || tax > 0 || diners > 0) && eval(count_items) > 0) {
  1025.     htm += '<hr width=100>Total: ' + CorrectPrices(eval(eval(count_items) + eval(ship) + eval(tax) + eval(diners)), true)
  1026.     }
  1027.     htm += '</div>'
  1028.     
  1029.     return htm
  1030. }
  1031.  
  1032. function clear_basket() {
  1033.  
  1034.     set_cookie('REGHASH', 'Shipping')
  1035.     set_cookie('REGHASH', '')
  1036.     set_cookie('SWIP', '')
  1037.     set_cookie('PT', '')
  1038.     set_cookie('DC', '')
  1039.     set_cookie('CN', '')
  1040.     set_cookie('VAT_NO', '')
  1041. }
  1042.  
  1043. function show_data(fld) {
  1044.  
  1045.     var htm = ''
  1046.  
  1047.     if (fld == 'SWSERVER') {
  1048.     var sw_pm = get_query('payment_method')
  1049.     if (serv[sw_pm]) {
  1050.         htm = unescape(serv[sw_pm])
  1051.     if (5 == eval(sw_pm)) {
  1052.         htm = rep(htm, '<!-- INSERT DATA 2 -->', get_query('SWSERVER2'))
  1053.     }
  1054.         htm = rep(htm, '<!-- INSERT DATA -->', get_query(fld))
  1055.     }
  1056.     }
  1057.     if (!htm) {
  1058.     htm = get_query(fld)
  1059.     }
  1060.     if (!htm) {
  1061.         var fm = get_cookie('FORM')
  1062.         if (fld && fm)  {
  1063.         var tem = fm.split(':')
  1064.             for (var i = 0; i < tem.length; i++) {
  1065.             var tem2 = tem[i].split('=')
  1066.             if (tem2.length > 1) {
  1067.              if (tem2[0] == fld) {
  1068.                     htm = unescape(tem2[1])
  1069.             }
  1070.             }
  1071.         }
  1072.         }
  1073.     }
  1074.     return htm
  1075. }
  1076.  
  1077. // KC's addition
  1078. // All the buy parameters for PictureToTV are stored here, so that the
  1079. // individual web pages simply need to call this.
  1080. function buy_personal(){
  1081.   buy('40711000,1,,,PictureToTV,39.95,Personal Edition,,Online download,0,0,0,')
  1082. }
  1083.  
  1084. function buy_business(){
  1085.   buy('40711001,1,,,PictureToTV,299.95,Business Edition,,Online download,0,0,0,')
  1086. }
  1087.  
  1088. // SVCD product
  1089. function buy_svcdbundle(){
  1090.   buy('40711003,1,,,PictureToTV,49.95,Personal Edition + SVCD Bundle,,Online download,0,0,0,')
  1091. }
  1092.  
  1093. load_document()
  1094.  
  1095.